package rede;

import java.io.IOException;
import java.io.ObjectInputStream;
import protocolo.Mensagem;

/**
 * @author tiagosn
 */
public class RecebeMensagem implements Runnable{
    private Servidor servidor;
    private String login;
    private ObjectInputStream entrada;

    public RecebeMensagem(Servidor servidor, String login, ObjectInputStream entrada){
        this.servidor = servidor;
        this.entrada = entrada;
        this.login = login;
    }

    public void run() {
        while(true){
            try {
                Mensagem mensagem = (Mensagem) entrada.readObject();
                servidor.enviaMensagem(mensagem);
            } catch (IOException ex) {
                try {
                    entrada.close();
                } catch (IOException ex1) {
                    /// tratar
                }finally{
                    servidor.desconectarCliente(login);
                    servidor.enviarListaUsuarios();
                    break;
                }
            } catch (ClassNotFoundException ex) {
                try {
                    entrada.close();
                } catch (IOException ex1) {
                    /// tratar
                }finally{
                    servidor.desconectarCliente(login);
                    servidor.enviarListaUsuarios();
                    break;
                }
            }
        }
        servidor.atualizarListaClientes();
    }
}
